A variety of markup languages are known in the art. For example, Extensible Markup Language (XML) is a restricted form of SGML, the Standard Generalized Markup Language defined in ISO 8879 and XML is one form of structuring data. XML is more fully described in “Extensible Markup Language (XML) 1.0 (Fifth Edition)”, W3C Recommendation (26 Nov. 2008), which is incorporated by reference herein for all purposes [and available at http://www.w3.org/TR/REC-xml/] (hereinafter, “XML Recommendation”). XML is a useful form of structuring data because it is an open format that is human-readable and machine-interpretable. Other structured languages without these features or with similar features might be used instead of XML, but XML is currently a popular structured language used to encapsulate (obtain, store, process, etc.) data in a structured manner.
An XML document has two parts: 1) a markup document and 2) a document schema. The markup document and the schema are made up of storage units called “elements”, which can be nested to form a hierarchical structure. The following is an example of an XML markup document:
<citation publication_date=01/02/2012> <title>MarkLogic Query Language</title> <author>  <last>Smith</last>  <first>John</first> </author> <abstract>
The MarkLogic Query Language is a new book from MarkLogic Publishers that gives application programmers a thorough introductions to the MarkLogic query language.
 </abstract></citation>
This document contains data for one “citation” element. The “citation” element has within it a “title” element, and “author” element and an “abstract” element. In turn, the “author” element has within it a “last” element (last name of the author) and a “first” element (first name of the author). Thus, an XML document comprises text organized in freely-structured outline form with tags indicating the beginning and end of each outline element. Generally, an XML document comprises text organized in freely-structured outline form with tags indicating the beginning and end of each outline element. In XML, a tag is delimited with angle brackets followed by the tag's name, with the opening and closing tags distinguished by having the closing tag beginning with a forward slash after the initial angle bracket.
Elements can contain either parsed or unparsed data. Only parsed data is shown for the example document above. Unparsed data is made up of arbitrary character sequences. Parsed data is made up of characters, some of which form character data and some of which form markup. The markup encodes a description of the document's storage layout and logical structure. XML elements can have associated attributes in the form of name-value pairs, such as the publication date attribute of the “citation” element. The name-value pairs appear within the angle brackets of an XML tag, following the tag name.
XML schemas specify constraints on the structures and types of elements and attribute values in an XML document. The basic schema for XML is the XML Schema, which is described in “XML Schema Part 1: Structures Second Edition”, W3C Recommendation (28 Oct. 2004), which is incorporated by reference herein for all purposes [and available at http://www.w3.org/TR/xmlschema-1/]. A previous and very widely used schema format is the DTD (Document Type Definition), which is described in the XML Recommendation.
Since XML documents are typically in text format, they can be searched using conventional text search tools. However, such tools might ignore the information content provided by the structure of the document, one of the key benefits of XML. Several query languages have been proposed for searching and reformatting XML documents that do consider the XML documents as structured documents. One such language is XQuery, which is described in “XQuery 1.0: An XML Query Language”, W3C Recommendation (14 Dec. 2010), which is incorporated by reference herein for all purposes [and available at http://www.w3.org/TR/xquery].
XQuery is derived from an XML query language called Quilt [described at http://www.almaden.ibm.com/cs/people/chamberlin/quilt.html], which in turn borrowed features from several other languages, including XPath 1.0 [described at http://www.w3.org/TR/xpath], XQL [described at Http://www.w3.org/TandS/QL/QL98/pp/xql.html], XML-QL [described at http://www.research.att.com/.about.mfflfiles/final.html] and OQL.
Query languages predated the development of XML and many relational databases use a standardized query language called SQL, as described in ISO/IEC 9075-1:1999. The SQL language has established itself as the linquafranca for relational database management and provides the basis for systems interoperability, application portability, client/server operation, and distributed databases. XQuery is proposed to fulfill a similar role with respect to XML database systems. As XML becomes the standard for information exchange between peer data stores, and between client visualization tools and data servers, XQuery may become the standard method for storing and retrieving data from XML databases.
Notwithstanding the growing use of Xquery, SQL is still prevalently known and utilized. Much work has been done on the issue of SQL efficiency, such as how to process a SQL query, retrieve matching data and present that to the human or computer query issuer with efficient use of computing resources to allow responses to be quickly made to queries. Accordingly, it would be desirable to leverage SQL in connection with tree structured data, such as XML. Furthermore, it would be desirable to build a database
that supports multiple query languages, such as XPath, XQuery, SQL, XSLT, Full-text search and a geospatial query language.